package model.building;

import model.City;
import model.Ressources;
import model.util.Object3D;
import model.util.Vector3D;
import model.util.Box3D;

public class Firm extends Company {

    /** Constructeurs */
    public Firm(City city, Vector3D position) 
    { this(city, new Box3D(m_shape, position), new Activity(m_defaultActivity)); }

    public Firm(City city, Object3D object3d, Activity activity) 
    { super(city, object3d, activity); }

    /** Accesseurs */
    public String getName() { return "Firm"; }
    public Object3D.Shape3D getShape3D() { return getShape(); }
    public double getBaseDestructionCost() { return 5000.0; }
    public double getMaintainCost() { return 10.0; }

    /** Variables de classe */
    private static final Box3D.Shape3D m_shape = new Box3D.Shape3D(new Vector3D(162.0, 106.0, 2.0));
    private static final Activity m_defaultActivity = new Activity();

    /** Methodes de classe */
    public static Box3D.Shape3D getShape() { return m_shape; }
    public static double getConstructionCost() { return 8000.0; }
    public static Activity getDefaultActivity() { return m_defaultActivity; }

    /** Classe internes */
    public static class Activity extends Company.Activity {
    
        /** Constructeurs */
        public Activity() {
	    initRessourceToUse(Ressources.Type.DOLLARS, 30);
	    initRessourceToCreate(Ressources.Type.GOODS, 60);}

        public Activity(Activity a) { super(a); }
    }
}
